More fixes for 'volatile' and setjmp/longjmp.
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 12 Sep 2012 21:34:24 +0000 (14:34 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 12 Sep 2012 21:34:24 +0000 (14:34 -0700)
commit5d762b7ae1f5b20e45c07a6be7aad525297a03e9
tree0ae5d70fc28a07b82ca63e5eb610de37270ea03a
parent2a723d420d78ee465ddd47e88461a2b8042d8883
More fixes for 'volatile' and setjmp/longjmp.

* eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's.
* image.c (struct png_load_context) [HAVE_PNG]: New type.
(png_load_body) [HAVE_PNG]:
(jpeg_load_body) [HAVE_JPEG]:
New function, with most of the old parent function's body.
(png_load) [HAVE_PNG]:
(jpeg_load) [HAVE_JPEG]:
Invoke the new function, to avoid longjmp munging our locals.
(struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code.
(my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when
longjmp is passed 2, as the C standard doesn't guarantee this.
Instead, store the failure code into mgr->failure_code.
src/ChangeLog
src/eval.c
src/image.c